//#include "Vector3Template.h"
//#include "../MathUtility.h"
//
//template <typename T>
//const Vector3Template<T> operator + ( const Vector3Template<T>& v1, const Vector3Template<T>& v2 ) {
//	Vector3Template<T> temp(v1);
//	return temp += v2;
//}
//
//template <typename T>
//const Vector3Template<T> operator - ( const Vector3Template<T>& v1, const Vector3Template<T>& v2 ) {
//	Vector3Template<T> temp(v1);
//	return temp -= v2;
//}
//
//template <typename T>
//const Vector3Template<T> operator * ( const Vector3Template<T>& v, T s ) {
//	Vector3Template<T> temp(v);
//	return temp *= s;
//}
//
//template <typename T>
//const Vector3Template<T> operator * ( T s, const Vector3Template<T>& v ) {
//	return v * s;
//}
//
//template <typename T>
//const Vector3Template<T> operator / ( const Vector3Template<T>& v, T s ) {
//	Vector3Template temp(v);
//	return temp /= s;
//}
//
//template <typename T>
//bool operator == ( const Vector3Template<T>& v1, const Vector3Template<T>& v2 ){
//	return ( v1.x == v2.x && v1.y == v2.y && v1.z == v2.z );
//}
//
//template <typename T>
//bool operator >  ( const Vector3Template<T>& v1, const Vector3Template<T>& v2 ){
//	if( v1.x <= v2.x ) { return false; }
//	if( v1.y <= v2.y ) { return false; }
//	if( v1.z <= v2.z ) { return false; }
//
//	return true;
//}
//
//template <typename T>
//bool operator <  ( const Vector3Template<T>& v1, const Vector3Template<T>& v2 ){
//	if( v1.x >= v2.x ) { return false; }
//	if( v1.y >= v2.y ) { return false; }
//	if( v1.z >= v2.z ) { return false; }
//
//	return true;
//}
//
//template <typename T>
//bool operator >= ( const Vector3Template<T>& v1, const Vector3Template<T>& v2 ){
//	return !(v1 < v2);
//}
//
//template <typename T>
//bool operator <= ( const Vector3Template<T>& v1, const Vector3Template<T>& v2 ){
//	return !(v1 > v2);
//}